package com.javabase.study.ExceptionStudy;

import com.javabase.study.ArrayStudy.TestBinarySearch;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

/**
 * TODO
 * 内容：异常机制的学习
 * 作者:jxx
 * 创建时间：2021/6/27
 */
public class TestCatchException {

    String name;

    public TestCatchException(){

    }
    public TestCatchException(String name ){
        this.name = name;
    }

    public static void main(String[] args){
        TestCatchException testCatchException = new TestCatchException();

        testCatchException.testCatchException();
    }

    /**
     * 测试 try catch finally用法及执行顺序
     * 由于FileReader类中的构造方法和close()方法上都有声明异常，此处我们必须处理
     *    1. 使用try catch finally 方式 捕获异常
     *    2. 在方法上向外抛出 throws XXXException
     */

    public void testCatchException(){
        // 方便下面关闭资源，在try语句外进行声明
        FileReader fileReader = null;

        try {
            System.out.println("step 1");
            fileReader = new FileReader("F:\\蒋兴兴\\账号信息\\腾讯云账号1.txt");
            System.out.println("step 2");

            char a = (char)fileReader.read();
            char c = (char)fileReader.read();
        } catch (FileNotFoundException e) {
            System.out.println("step 3");
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            System.out.println("step 4");
            //在finally内关闭资源
            if(fileReader != null){
                try {
                    fileReader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

}
